The present invention pertains to video driver circuits, that is circuits carrying out the decoding and displaying of audiovisual programs coded in the form of a stream of digital data coded according to a given compression standard.
It finds applications in video decoders comprising a personal digital recording functionality (or PVR, standing for “Personal Video Recorder”). In such decoders, a recording of programs is made on a mass storage digital medium (or DSM, standing for “Digital Storage Media”) such as a hard disk, a digital video cassette, a DVD (“Digital Versatile Disk”), etc.
The decoders concerned are in particular decoder boxes (“Set-Top Boxes”) providing for the interface between an inlet for digital signals broadcast in real time by satellite, by cable or by terrestrial digital broadcasting (or DVB, standing for “Digital Video Broadcasting”) on the one hand, and an analog television on the other hand. Such a decoder box is a standalone apparatus. However, the present invention applies also to integrated decoders built into a digital television, or to a digital read/record apparatus such as a DVD reader, a digital video cassette reader or the like.
A decoder box receives one or more programs in the form of a stream of compressed digital data, that is whose video frames (i.e., images) and audio frames are coded in such a way as to reduce the volume of the data broadcast. For example, this coding can comply with the specifications of the MPEG-2 standard (ISO/IEC 13818-2) hereinafter the MPEG standard (“Motion Pictures Expert Group”). This standard defines a data compression technique for the coding of moving pictures and sound (in particular for digital television). According to the vocabulary of the MPEG standard, the compressed digital data stream is called the transport stream. This stream contains packetized audio data and packetized video data.
In the present description, the term “presentation”, when it is used in relation to a program, denotes the restoring of the decoded audio and video data, in audible and visible form respectively by a user. The term “playback” (or “reading”), used in relation to a program, more specifically denotes the decoding and the displaying of the program from a recording of the program on a hard disk. The term “display” is more particularly used to designate the presentation of the video frames, whereas the verb “to play” is more particularly used to designate the act of presenting audio frames.
The diagram of FIG. 1 illustrates the principle of the decoding implemented in the early generations of decoder boxes, which did not incorporate the PVR functionality. A demultiplexer 71 receives one or more transport streams, transmitted in real time via a specified transmission channel (satellite, cable, DVB). It carries out the demultiplexing (and possibly the descrambling) of this stream, and delivers a stream of audio data packets and a stream of video data packets. The stream of audio data packets is transmitted to an audio decoder 72 for audio decoding, whereas the stream of video data packets is transmitted to a video decoder 72 for video decoding. Stated otherwise, the demultiplexer plays the role of source of the data to be decoded.
The diagram of FIG. 2, in which the same elements as in FIG. 1 bear the same reference characters, illustrates a principle of decoding implemented in conventional decoder boxes which offer the PVR functionality. The streams of audio data packets and of video data packets delivered by the demultiplexer 71 are stored on a mass storage digital medium 74 such as a hard disk. Then, from the hard disk 74, they can be supplied as input to the audio decoder 72 and to the video decoder 73, respectively, for decoding. In this case, a chapter of the MPEG standard recommends that the hard disk be made to play the role of source of the data to be decoded.
For the new generations of decoder boxes, the hard disk makes it possible to offer a number of functionalities, such as the following.
The decoding and the presentation of a program broadcast in real time and the simultaneous recording on the hard disk of another program broadcast in real time, both contained in one or more transport streams received by the decoder box.
The recording of a program broadcast in real time on pressing the “Pause” button in the course of presentation, then the resumption without interruption of the presentation with a Time Shift, by reading the program from the hard disk, on pressing the “Read” button.
The loading of scrambled programs according to the so-called push model (or “Push mode”) which are rendered accessible only after, for example, the acknowledgement by the user of the corresponding access rights (for video on demand).
The implementing of advanced modes of reading (or “trick modes”), that is to say reading at a speed different from a nominal forward speed (xl), in particular fast forward and rewind at high speed or otherwise.
The processing of a transport stream essentially comprises two tasks: the preparation of the data to be decoded and their supplying to an MPEG decoder; and the decoding and the presentation of the images and of the audio, which are carried out by the MPEG decoder.
The MPEG standard was designed by postulating that it is the data source which defines the regulating of the processing and supplies the reference clock. For the displaying of programs broadcast live, this regulating is thus imposed on the MPEG decoder by the demultiplexer which carries out the demultiplexing of the transport stream. The flow of images is present in the stream of video data packets in an appropriate order for real-time decoding and display at nominal speed. The temporal reference system is then based on the Program Clock References (or PCR) present in the transport stream. Presentation Time Stamps (PTS) also present in the transport stream, moreover allow the synchronization of the streams of audio frames and of video frames. The priority for the decoding procedure is to guarantee that the real-time constraints are complied with, and that no hardware resource (for example a queue or a buffer memory) is in a capacity overflow situation.
In the case of the reading of a program from the hard disk, it follows from the aforesaid recommendation of the MPEG standard that it is the reading of the data from the hard disk which must regulate the processing of the data to be decoded. However, the data may arrive at a variable speed, as a function of the accesses to the hard disk which are carried out, these accesses possibly being performed in Burst Mode. Stated otherwise, the concept of real time is lost. On the other hand, one observes that the hard disk itself constitutes a buffer memory which can compensate for the capacity overflow situations.
Furthermore, it may be desirable to be able to carry out the decoding in parallel of several streams corresponding to several respective programs (so-called “multidecoding” functionality), even with a single MPEG decoder. In particular, it allows the transition from real-time presentation to reading from hard disk without time loss due to reinitialization of the MPEG decoder (which may take several seconds). More generally, this allows the end-to-end abutting of two program sequences without artifact, in particular the smooth insertion of prerecorded or other advertising slots into a program (the so-called “Seamless Splicing” functionality).
In certain cases, it is also desirable to be able to use several MPEG decoders for the decoding and the displaying of several programs simultaneously, and/or for the displaying of a program at the same time as the displaying of a still image.
Finally, the implementation of advanced modes of reading is penalized by the real-time aspects which constrain the decoding according to the aforesaid recommendation of the MPEG standard.